//
// Created by XML on 2023/9/20.
//

#include <stdio.h>

/**
 * 函数宏
 *
 * @return
 */

#define spr(x) ((x) * (x)) // 平方
#define diff(x, y) ((x)-(y)) // 两者之差
#define max(x, y) ((x) > (y) ? (x) : (y)) // 求最大值


int sqr_int(int x) {
    return x * x;
}

double sqr_double(double x) {
    return x * x;
}
int main() {

    printf("3的平方是%d\n", sqr_int(3));
    printf("3.1的平方是%f\n", sqr_double(3.1));

    // 对于不同类型需要不同的函数来实现，是很繁琐不通用
    // 通过函数宏来计算不同类型的平方
    printf("3的平方是%d\n", spr(3));
    printf("3.1的平方是%f\n", spr(3.1));

    printf("8 和 6两者之差：%d\n", diff(8, 6));
    printf("8,6的最大值：%d\n", max(8,6));

    printf("%f\n", max(max(7,8.5), max(10,30)));


    return 0;
}